
# ------------------------------------------------------------------------------------------
# # Julia绘图简介
#
# Julia有几种不同的绘图方式（包括调用PyPlot）。 <br>
#
# 这里将介绍如何使用`Plots.jl`。
# ------------------------------------------------------------------------------------------

using Pkg; Pkg.add("Plots")
using Plots

# ------------------------------------------------------------------------------------------
# `Plots.jl`的优势之一是可以无缝地切换后端（backends）。在这个notebook中，我们将尝试`gr()`和`plotlyjs()`后端。 <br>
#
# 以科学调查之名，我们用这个notebook调查一下大概1860到2000年的全球温度和海盗数量的关系。
# ------------------------------------------------------------------------------------------

globaltemperatures = [14.4, 14.5, 14.8, 15.2, 15.5, 15.8]
numpirates = [45000, 20000, 15000, 5000, 400, 17]

# ------------------------------------------------------------------------------------------
# **要绘制出图线，先载入GR后端**
# ------------------------------------------------------------------------------------------

gr()

# ------------------------------------------------------------------------------------------
# 现在我们可以调用如`plot`和`scatter`的函数来绘制图像。
# ------------------------------------------------------------------------------------------

plot(numpirates, globaltemperatures, label="line")  
scatter!(numpirates, globaltemperatures, label="points") 

# ------------------------------------------------------------------------------------------
# `scatter!`函数名后面的`!` 意味着它是一个原地修改传入变量的函数，表示散点图会被添加到已存在的图像上。
#
# 与此对应的，你可以试试换成`scatter`看看会发生什么。
#
# 接着，我们通过`xlabel!`，`ylabel!`和 `title!`函数来给图像加上更多信息。
# ------------------------------------------------------------------------------------------

xlabel!("Number of Pirates [Approximate]")
ylabel!("Global Temperature (C)")
title!("Influence of pirate population on global warming")

# ------------------------------------------------------------------------------------------
# 这看上去仍不对劲。自1860以来海盗数量是减少的，而从左往右看其实时间上是倒序的。我们来把X轴反过来，可以更清楚地看到时间顺序下海盗人口是如何导致全球温度的变化！
# ------------------------------------------------------------------------------------------

xflip!()

# ------------------------------------------------------------------------------------------
# 呐，就酱！
#
# 注意：这是一个关于人们是如何经常结合相关性和因果性的笑话。
#
# **不需要修改语法，我们可以在`unicodeplots()`后端中绘制同样的图像**
# ------------------------------------------------------------------------------------------

using Pkg; Pkg.add("UnicodePlots")
unicodeplots()

plot(numpirates, globaltemperatures, label="line")  
scatter!(numpirates, globaltemperatures, label="points") 
xlabel!("Number of Pirates [Approximate]")
ylabel!("Global Temperature (C)")
title!("Influence of pirate population on global warming")

# ------------------------------------------------------------------------------------------
# 注意到第二幅图和第一幅的区别！
# ------------------------------------------------------------------------------------------
